package com.tbit.uqbike.webmanager.business.machine_op_log.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 车辆操作日志 注解<br>
 * 注解内三个属性用于定位插入日志时记录哪台车，任选一个即可，但至少选一个<br>
 *
 * @author <a href="mailto:zheng.zebiao@tbit.com.cn">zb</a>
 * @since 2024/11/19
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface InsertMachineOpLog {
    /**
     * 车辆id
     *
     * @return spel表达式，可引用方法参数
     */
    String machineId() default "";

    /**
     * 设备编号
     *
     * @return spel表达式，可引用方法参数
     */
    String machineNO() default "";

    /**
     * 车辆编号
     *
     * @return spel表达式，可引用方法参数
     */
    String userCode() default "";

    /**
     * 方法抛出异常时是否记录日志
     */
    boolean logWhenThrow() default true;

    /**
     * 操作内容
     */
    String operation();

    /**
     * 操作类型
     */
    String opType() default "";
}
